В табл. 10.4 показаны все основные линии. TD и RD - это линии передачи и приема данных; RTS и CTS — запроса передачи и готовности передачи; DTR, DSR и DCD — «оконечное оборудование данных готово», «аппаратура передачи данных готова» и «детектор принимаемого линейного сигнала». В разъеме имеются две земли: защитное заземление (или корпус, контакт 1) и сигнальное заземление (контакт 7); в большинстве машин их просто соединяют вместе. Пять сигналов, не относящихся к данным, являются управляющими сигналами квитирования. Устройство DTE устанавливает RTS и DTR, когда оно готово к передаче, а устройство DCE устанавливает CTS и DSR, когда оно готово к приему. Некоторые устройства DTE требуют, чтобы до выполнения ими любых действий был установлен их вход DCD. На всех сигнальных линиях действуют биполярные уровни RS-232, причем установленные данные (TD, RD) имеют отрицательную полярность, а установленные управляющие сигналы (RTS, CTS, DSR, DTR, DCD) — положительную.
Заметьте, что названия сигналов имеют смысл только если их рассматривать со стороны DTE. Например, контакт 2 называется TD (Transmitted Data-передаваемые данные) на обеих сторонах, несмотря на то, что DTE устанавливает данные, a DCE принимает их. Поэтому название контакта не говорит вам однозначно, вход это или выход - вам еще надо знать, рассматривает ли себя устройство, как DTE или DCE (вы можете обойти это затруднение с помощью вольтметра!).
Если бы все устройства RS-232 устанавливали все сигналы, требующие установки, и анализировали состояние всех сигналов, требующих анализа, то всегда можно было бы просто соединить соответствующие контакты (для пары DTE-DCE) или соединить соответствующие контакты крест-накрест (для пар DCE-DCE или DTE-DTE). Если, однако, вы к устройству, игнорирующему все линии квитирования, подключите устройство, реализующее полный протокол квитирования, ничего хорошего из этого не получится. Разрабатывая стратегию своих действий, вы должны опираться на реальность; иногда для этого требуется некоторая хитрость. На рис. 10.17 показаны схемы кабелей, обеспечивающих правильные соединения для всех (ну, скажем, почти всех) ситуаций.
Рис. 10.17. Кабели RS-232, обеспечивающие правильные соединения. Указанные номера контактов соответствуют 25-контактным разъемам DB-25; разводка альтернативного 9-контактного разъема приведена на схеме д.
На схеме а показаны соединения для пары устройств DTE—DCE, когда оба устройства используют полный протокол квитирования. Одна пара квитирующих сигналов представлена линиями RTS/CTS, другая - линиями DTR/DSR. На схеме в показан кабель «нуль-модема» с перекрещенными входами и выходами для пары DTE-DTE. Тот же кабель годится и для пары DCE-DCE, только надо изменить направление стрелок на рисунке и опустить соединение контакта 8. Если, однако, одно устройство реализует протокол квитирования, а другое - нет, кабели а и в не годятся. В этом случае самое простое — распаять кабель таким образом, чтобы устройство само отвечало на свои же сигналы квитирования и разрешало самому себе переход к следующим операциям. Такое соединение показано на схеме б для пары DTE-DCE и на схеме г для пары DTE-DTE (или пары DCE-DCE, но тогда следует опустить соединение контакта 8). Как сделаться гением RS-232. Если вы распаяете эти четыре кабеля с розеткой и вилкой на каждом конце, вы сможете заставить что угодно работать с чем угодно (почти). Ваши коллеги признают в вас гения. Правда, только в том случае, если им в руки не попадется действительно профессиональная штучка — «индикаторная коробка для RS-232». Она оснащена световыми индикаторами на ЭЛД для каждой линии интерфейса, что позволяет наблюдать, какое устройство какие сигналы устанавливает, и имеет набор перемычек для соединения контактов разъемов в любом порядке. Использовать индикаторную коробку надо следующим образом. Прежде всего, наблюдая световые индикаторы, соедините правильно TD и RD, затем по состоянию индикаторов определите, какое устройство посылает сигналы квитирования. Если устройство устанавливает RTS, оно, скорее всего, ожидает ответной установки CTS. Если это делают оба устройства, соедините их друг с другом; в противном случае замкните RTS на CTS того же устройства. То же самое проделайте с сигналами DTR и DSR. Если в устройстве используется только одна пара квитирующих сигналов, то это, скорее всего, DTR/DSR. Вообще пара DTR/DSR используется для оповещения о том, что устройство на противоположной стороне подсоединено и включено, в то время как пара RTS/CTS запускает и останавливает передачу.
Если скупость не позволяет вам приобрести индикаторную коробку, можете проанализировать состояние линий с помощью вольтметра: любая линия, находящаяся под большим (> 4 В) отрицательным или положительным напряжением, несет установленный сигнал; если напряжение на линии около нуля, сигнал сброшен.
Программное квитирование. Некоторые устройства используют аппаратные сигналы квитирования RTS/CTS для индикации начала и конца передачи данных, в то время как более медленные устройства (например принтер) просто держат их установленными. Другие осуществляют программное квитирование: CTRL-S (для остановки) и CTRL-Q (для возобновления). Если вам повезет, у вас будет возможность выбора. Программный метод позволяет упростить кабель, и если устройства полностью игнорируют сигналы аппаратного квитирования, в кабеле будут лишь провода, подключенные к контактам 1, 2, 3 и 7 (вам только надо выяснить, соединять ли контакты 2 и 3 прямо или крест-накрест). Однако, даже если устройство использует CTRL-S и CTRL-Q для управления передачей, оно может требовать подключения линий аппаратного квитирования для установления связи. В этом случае вам понадобится одна из схем соединений, приведенных на рис. 10.17, б и г. Не забудьте только включить питание на обеих сторонах линий связи, так как ни одно из соединенных устройств не имеет никакой возможности определить, включено ли другое и вообще существует ли оно!
Другие стандарты на последовательную передачу: RS-422, RS-423 и RS-485. Стандарт RS-232C был введен в 1969 г., когда последовательная передача данных осуществлялась медленно. Интерфейс обеспечивает дальность связи до 15 м со скоростью до 19200 бод. Однако скорости компьютеров и периферийных устройств удваивались каждые год-два, и потребовались лучшие стандарты на последовательную передачу. Как уже отмечалось в разд. 9.14, RS-423 представляет собой улучшенный протокол для биполярных несимметричных цепей, обеспечивающий скорость передачи до 100 кбод и дальность до 1200 м (но не одновременно); он принципиально совместим с RS-232. RS-422 представляет собой протокол для однополярных симметричных цепей с граничными возможностями 10 Мбод и 1200 м (см. рис. 9.37, где приведена зависимость скорость-дальность). RS-485 подобен RS-422, но содержит дополнительные спецификации для подключения к одной линии многих драйверов и приемников. В табл. 10.5 собраны характеристики этих четырех стандартов.
Модемы. Как уже отмечалось ранее, модем («модулятор/демодулятор») используется для преобразования бит — последовательных цифровых величин в аналоговые сигналы, которые можно пересылать по телефонным линиям или другим каналам передачи данных (рис. 10.18).
Рис. 10.18. Связь через модем.
Внутренний модем вставляется в разъем (слот) вашего компьютера (либо поступает к вам уже встроенным в компьютер), в то время как внешний модем представляет собой автономный прибор, питающийся от сети переменного тока и имеющий соединитель в стандарте RS-232 для подключения к последовательному порту компьютера. Любой модем имеет выход на телефонную линию одним из двух способов: (а) с помощью прямого соединения через телефонную розетку или (б) акустически, когда телефонная трубка кладется в обрезиненное гнездо, содержащее микрофон и динамик. Модемы с акустическим подключением в настоящее время вышли из моды, хотя они могут пригодиться, например, в гостинице, где иначе вам пришлось бы лазить под кроватями в поисках телефонной розетки (возможно и несуществующей!).
В большинстве случаев требуется пересылать данные по одному телефонному каналу в обоих направлениях одновременно («полнодуплексная связь»); передача и прием совместно используют телефонную полосу частот, которая занимает область приблизительно 300 Гц-3 кГц. Широко используются три полнодуплексных формата: 300 бод FSK (Bell 103) 1200 бод дибитный PSK (Bell 212А) и 2400 бод дибитный PSK (FSK обозначает Frequency-shift Keying — частотная манипуляция, a PSK — Phase-Shift Keying — фазовая манипуляция; о дибитах см. ниже). Модем, предназначенный для передачи со скоростью, скажем, 1200 бод, обычно поддерживает и связь со скоростью 300 бод и т. д. Хотя для использования модема нет необходимости вникать в тонкости кодирования им данных, однако методы кодирования интересны сами по себе, и мы не можем удержаться, чтобы кратко не описать их.